package com.atguigu.gmall.item.vo;

import com.atguigu.gmall.pms.entity.CategoryEntity;
import com.atguigu.gmall.pms.entity.SkuImagesEntity;
import com.atguigu.gmall.pms.vo.ItemGroupVo;
import com.atguigu.gmall.pms.vo.SaleAttrValueVo;
import com.atguigu.gmall.sms.vo.ItemSaleVo;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

@Data
public class ItemVo {

    /// 面包屑所需字段
    // 三级分类  V O  T
    private List<CategoryEntity> categories;

    // 品牌 V  O  T
    private Long brandId;
    private String brandName;

    // spu  V  O  T
    private Long spuId;
    private String spuName;

    /// 基本信息
    // sku信息  V O T
    private Long skuId;
    private String title;
    private String subtitle;
    private String defaultImage;
    private BigDecimal price;
    private Integer weight;

    // sku图片列表 V  O T
    private List<SkuImagesEntity> images;

    // 营销信息 V O T
    private List<ItemSaleVo> sales;

    // 是否有货 V O T
    private Boolean store = false;

    // 同一个spu下所有sku销售属性列表 V O T
    // [{attrId: 3, attrName: 颜色, attrValues: [暗夜黑, 白天白]},
    //  {attrId: 4, attrName: 内存, attrValues: [8G, 12G]},
    //  {attrId: 5, attrName: 存储, attrValues: [128G, 256G]}]
    private List<SaleAttrValueVo> saleAttrs;

    // 当前sku的销售属性 V O T
    // {3: 暗夜黑, 4: 12G, 5: 256G}
    private Map<Long, String> saleAttr;

    // spu下所有销售属性组合和skuId的映射关系 V O T
    // {'暗夜黑,8G,128G': 10, '暗夜黑,12G,256G': 11, '暗夜黑,12G,128G': 12}
    private String skuJsons;

    // 商品介绍 海报信息 V O T
    private List<String> spuImage;

    // 规格参数分组集合 V O
    private List<ItemGroupVo> groups;
}
